{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "192bb3fb",
   "metadata": {},
   "source": [
    "#   [Py4Hw User Guide](../UserGuide.ipynb)> 6.1 Schematic Visualization\n",
    "###  [Next: 6.2 Manipulating Schematics](Manipulation.ipynb)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "26f61ac9",
   "metadata": {},
   "source": [
    "The visualization of circuit schematics is implemented from scratch in the framework."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "2a28792e",
   "metadata": {},
   "outputs": [],
   "source": [
    "import py4hw\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "cd1fba4d",
   "metadata": {},
   "source": [
    "The schematic object allows to control various things of the visualization process.\n",
    "For instance, we can observe the internal occupancy grid used by the place & route algorithm"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "00af28ef",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sys = py4hw.HWSystem()\n",
    "reset = sys.wire('reset')\n",
    "inc = sys.wire('inc')\n",
    "q = sys.wire('q', 8)\n",
    "co = sys.wire('co')\n",
    "\n",
    "counter = py4hw.ModuloCounter(sys, 'mod7', 7, reset, inc, q, co)\n",
    "sch = py4hw.Schematic(counter)\n",
    "\n",
    "#q2 = sys.wire('q2', 8)\n",
    "#count = sys.wire('count', 8)\n",
    "\n",
    "\n",
    "#py4hw.Sequence(sys, 'inc', [0, 1], inc)\n",
    "#py4hw.Add(sys, 'counter', q, inc, count)\n",
    "#py4hw.Reg(sys, 'reg2', d=count, enable=inc, q=q2)\n",
    "#py4hw.Reg(sys, 'reg', d=q2, enable=inc, q=q)\n",
    "#py4hw.Scope(sys, 'q', q)\n",
    "    \n",
    "#sch = py4hw.Schematic(sys)\n",
    "#sch.createRender((20,5), dpi=100)\n",
    "#sch.draw()\n",
    "grid = sch.getOccupancyGrid()\n",
    "plt.imshow(grid)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "8b5ad97e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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9u3DiBEjVCHqu+++w7Jly/Dtt98iNDQ022NJJBJs374d1apVw8qVKzF27FgMHz4c9vb2mDNnTqb7xcXFYfHixdi5cyekUin69u2LSZMmYffu3QCAdevWYcKECViwYAG++OILREZG4tKlS5p6CUSRVrPVfoE1bFwNtFwazSkuNVyAMmxZORed/zsiIk1g4MqjGjVqYObMmQCA6dOnY8GCBShRogSGDBkCAJg1axbWrVuHO3fu5Oh4jo6O2LBhA7799lu8evUKR48exa1bt2BgkPkvruTkZKxfvx7lypUDAIwePRrz5s1Trf/+++8xceJEjB07VrWsXr16ub5WbbBxNYC9u6G2i6FRjrXEPr5M3BMQEVGeMXDlUfXq1VWP9fT0YGNjg2rVqqmW2dvbAwBev36d42N+/fXXOHToEObPn49169ahQoUKWW5vYmKiClsA4ODgoDrf69ev8fLlS7Rq1SrH5yciIiJxsJdiHv235kkikagtk0iUt40UCgWkUikEQb0ReHJy+sbFcXFxCAgIgJ6eHv7+++88lSHtPMbGxjm7ECIiIhIdA1cBsLW1RXR0NGJjY1XLbt++nW67iRMnQiqV4sSJE1i5ciXOnTuX53PK5XK4uLjg7NmzeT4GERERaQZvKRaABg0awMTEBN999x3GjBmDa9euYdu2bWrb+Pn5YevWrbhy5Qpq166NadOmoX///rhz5w6srKzydN45c+Zg+PDhsLOzwxdffIHo6GhcunQJY8aM0cBVERERUU6xhqsAWFtbY9euXTh+/DiqVauGn3/+Wa334Zs3bzBo0CDMmTMHtWvXBgDMnj0bpUqVwvDhw/N83v79+2P58uVYu3YtqlSpgg4dOuToViURERFpFmu48sDf3z/dsqdPn6Zb9mm7rc6dO6Nz585q69N6NNra2uKff9THntLX18eff/6pet68eXO143l6esLT01Ntn86dO6drKzZs2DAMGzYsq8shyrfCOFitmEN16NIwHYWZ2MOp6IK0wYLzMmgwBxouXBi4iChfOFgtUf75TXuf53050HDhwMBFRPlSWAerZQ2X7isuNVx+097n+fPDgYYLDwYuItKIwjhYrZiD0XIgWs0Qe8BgXVEYPz+UO/zTi4iIiEhkDFxEREREImPgIiIiIhIZAxcRERGRyBi4iIiIiETGwEVEREQkMgYuIiIiIpExcBER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O3dUy+rWrYvFixdneZzY2FgMHjwYMTExiI2NRXh4OJ4+faqaf/FT+vr66NevH2bOnImyZctq5kKIiIhIqxi4cqFz5864d++e6rlMJsPLly9Rrly5LPcTBAEvX77Mchs3Nzf07dsXQ4YMQalSpTRSXiIiItINDFy5kDbCe5rExMRsg1RGjI2N4ezsjOrVq6N+/fpo27YtqlatyhHjiYiIiigGrlwoVaoUJBJJnoJRSkoKJBIJHBwcEBAQwHBFRERUjDBw5cKNGze0XQQiIiIqhDioExEREZHIGLiIiIiIRMbARURERCQyBi4iIiIikTFwEREREYmMgYuIiIhIZAxcRERERCJj4CIiIiISGQMXERERkcgYuIiIiIhExsBFREREJDIGLiIiIiKRMXARERERiYyBi4iIiEhkDFxEREREImPgIiIiIhIZAxcRERGRyBi4iIiIiETGwEVEREQkMgYuIiIiIpExcBERERGJjIGLiIiISGQMXEREREQiY+AiIiIiEhkDFxEREZHIGLiIiIiIRMbARURERCQyBi4iIiIikTFwEREREYmMgYuIiIhIZAxcRERERCJj4CIiIiISGQMXERERkcgYuIiIiIhExsBFREREJDIGLiIiIiKRMXARERERiYyBi4iIiEhkDFxEREREImPgIiIiIhIZAxcRERGRyBi4iIiIiETGwEVEREQkMgYuIiIiIpExcBERERGJjIGLiIiISGT62jrxu5BkbZ1aJ6UkCogMS4GFox70ZcU3B/N9QURERVGBBy5DUwkAwG/a+4I+NRUiae8TIiKioqDAA5eVswEG+5VEUqxQ0KfWaazh+sjQVAIrZwNtF4OIiEhjtHJLkb9MM+ZYS6btIhAREZEIindVChEREVEBYOAiIiIiEhkDFxEREZHIGLiIiIiIRMbARURERCQyBi4iIiIikTFwEREREYmMgYuIiIhIZAxcRERERCJj4CIiIiISGQMXERERkcgYuIiIiIhExsBFREREJDIGLiIiIiKRMXARERERiYyBi4iIiEhkDFxEREREImPgIiIiIhIZAxcRERGRyBi4iIiIiETGwEVEREQkMgYuIiIiIpExcBERERGJjIGLiIiISGQMXEREREQiY+AiIiIiEhkDFxEREZHIGLiIiIiIRMbARURERCQyBi4iIiIikTFwEREREYmMgYuIiIhIZAxcRERERCJj4CIiIiISGQMXERERkcgYuIiIiIhExsBFREREJDIGLiIiIiKRMXARERERiYyBi4iIiEhkDFxEREREImPgIiIiIhIZAxcRERGRyBi4iIiIiETGwEVEREQkMgYuIiIiIpExcBERERGJjIGLiIiISGQMXEREREQiY+AiIiIiEhkDFxEREZHIGLiIiIiIRMbARURERCQyBi4iIiIikTFwEREREYmMgYuIiIhIZAxcRERERCLTF/Pg70KSxTx8kZKSKCAyLAUWjnrQlzEHZ4bvKSIiKoxECVyGphIAgN+092Icnkj1HiMiIioMRAlcVs4GGOxXEkmxghiHL5JYw5VzhqYSWDkbaLsYREREOSbaLUX+Qsw9x1oybReBiIiIRMCqFCIiIiKRMXARERERiYyBi4iIiEhkDFxEREREImPgIiIiIhIZAxcRERGRyBi4iIiIiETGwEVEREQkMgYuIiIiIpExcBERERGJjIGLiIiISGQMXEREREQiY+AiIiIiEhkDFxEREZHIGLiIiIiIRMbARURERCQyBi4iIiIikTFwEREREYmMgYuIiIhIZAxcRERERCJj4CIiIiISGQMXERERkcgYuIiIiIhExsBFREREJDIGLiIiIiKRMXARERERiYyBi4iIiEhkDFxEREREImPgIiIiIhIZAxcRERGRyBi4iIiIiETGwEVEREQkMgYuIiIiIpExcBERERGJjIGLiIiISGQMXEREREQiY+AiIiIiEhkDFxEREZHIGLiIiIiIRMbARURERCQyBi4iIiIikTFwEREREYmMgYuIiIhIZAxcRERERCJj4CIiIiISGQMXERERkcgYuIiIiIhExsBFREREJDIGLiIiIiKRMXARERERiYyBi4iIiEhkDFxEREREImPgIiIiIhIZAxcRERGRyBi4iIiIiETGwEVEREQkMgYuIiIiIpExcBERERGJTD8/O78LSdZUOYq9lEQBkWEpsHDUg76MOTiv+J4kIiJdlKfAZWgqAQD4TXuv0cIQaUrae5SIiEgXSARBEPKyY8SzZCTF5mlXygBruDTH0FQCK2cDbReDiIhIJc+Bi4iIiIhyhlUpRERERCJj4CIiIiISGQMXERERkcgYuIiIiIhExsBFREREJDIGLiIiIiKRMXARERERiYyBi4iIiEhkDFxEREREImPgIiIiIhIZAxcRERGRyBi4iIiIiETGwEVEREQkMgYuIiIiIpExcBERERGJjIGLiIiISGQMXEREREQiY+AiIiIiEhkDFxEREZHIGLiIiIiIRMbARURERCQyBi4iIiIikTFwEREREYmMgYuIiIhIZAxcRERERCJj4CIiIiISGQMXERERkcgYuIiIiIhExsBFREREJDIGLiIiIiKRMXARERERiYyBi4iIiEhkDFxEREREImPgIiIiIhIZAxcRERGRyBi4iIiIiETGwEVEREQkMgYuIiIiIpExcBERERGJjIGLiIiISGQMXEREREQiY+AiIiIiEhkDFxEREZHIGLiIiIiIRMbARURERCQyBi4iIiIikTFwEREREYmMgYuIiIhIZAxcRERERCJj4CIiIiISGQMXERERkcgYuIiIiIhExsBFREREJDIGLiIiIiKRMXARERERiYyBi4iIiEhkDFxEREREIvs/Sp0L3IlA8ycAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 694x758 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sch.createRender()\n",
    "sch.draw()\n",
    "#sch.drawAll()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d8a35a3a",
   "metadata": {},
   "source": [
    "Disecting the Place and Route process"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "2ac069a6",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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EhkDFxEREZHIGLiIiIiIRMbARURERCQyfW2d+F1IsrZOrZNSEgVEhqXAwlEP+rLim4P5viAioqKowAOXoakEAOA3/X1Bn5oKkbT3CRERUVFQ4IHLqqwBhviVRFKsUNCn1mms4frI0FQCq7IG2i4GERGRxmjlliJ/mWbMsZZM20UgIiIiERTvqhQiIiKiAsDARURERCQyBi4iIiIikTFwEREREYmMgYuIiIhIZAxcRERERCJj4CIiIiISGQMXERERkcgYuIiIiIhExsBFREREJDIGLiIiIiKRMXARERERiYyBi4iIiEhkDFxEREREImPgIiIiIhIZAxcRERGRyBi4iIiIiETGwEVEREQkMgYuIiIiIpExcBERERGJjIGLiIiISGQMXEREREQiY+AiIiIiEhkDFxEREZHIGLiIiIiIRMbARURERCQyBi4iIiIikTFwEREREYmMgYuIiIhIZAxcRERERCJj4CIiIiISGQMXERERkcgYuIiIiIhExsBFREREJDIGLiIiIiKRMXARERERiYyBi4iIiEhkDFxEREREImPgIiIiIhIZAxcRERGRyBi4iIiIiETGwEVEREQkMgYuIiIiIpExcBERERGJjIGLiIiISGQMXEREREQiY+AiIiIiEhkDFxEREZHIGLiIiIiIRMbARURERCQyBi4iIiIikTFwEREREYmMgYuIiIhIZAxcRERERCJj4CIiIiISGQMXERERkcgYuIiIiIhEpi/mwd+FJIt5+CIlJVFAZFgKLBz1oC9jDs4M31NERFQYiRK4DE0lAAC/6e/FODyR6j1GRERUGIgSuKzKGmCIX0kkxQpiHL5IYg1XzhmaSmBV1kDbxSAiIsox0W4p8hdi7jnWkmm7CERERCQCVqUQERERiYyBi4iIiEhkDFxEREREImPgIiIiIhIZAxcRERGRyBi4iIiIiETGwEVEREQkMgYuIiIiIpExcBERERGJjIGLiIiISGQMXEREREQiY+AiIiIiEhkDFxEREZHIGLiIiIiIRMbARURERCQyBi4iIiIikTFwEREREYmMgYuIiIhIZAxcRERERCJj4CIiIiISGQMXERERkcgYuIiIiIhExsBFREREJDIGLiIiIiKRMXARERERiYyBi4iIiEhkDFxEREREImPgIiIiIhIZAxcRERGRyBi4iIiIiETGwEVEREQkMgYuIiIiIpExcBERERGJjIGLiIiISGQMXEREREQiY+AiIiIiEhkDFxEREZHIGLiIiIiIRMbARURERCQyBi4iIiIikTFwEREREYmMgYuIiIhIZAxcRERERCJj4CIiIiISGQMXERERkcgYuIiIiIhExsBFREREJDIGLiIiIiKRMXARERERiYyBi4iIiEhkDFxEREREImPgIiIiIhIZAxcRERGRyBi4iIiIiETGwEVEREQkMgYuIiIiIpExcBERERGJjIGLiIiISGT6+dn5XUiypspR7KUkCogMS4GFox70ZczBecX3JBER6aI8BS5DUwkAwG/6e40WhkhT0t6jREREukAiCIKQlx0jniUjKTZPu1IGWMOlOYamEliVNdB2MYiIiFTyHLiIiIiIKGdYlUJEREQkMgYuIiIiIpExcBERERGJjIGLiIiISGQMXEREREQiY+AiIiIiEhkDFxEREZHIGLiIiIiIRMbARURERCQyBi4iIiIikTFwEREREYmMgYuIiIhIZAxcRERERCJj4CIiIiISGQMXERERkcgYuIiIiIhExsBFREREJDIGLiIiIiKRMXARERERiYyBi4iIiEhkDFxEREREImPgIiIiIhIZAxcRERGRyBi4iIiIiETGwEVEREQkMgYuIiIiIpExcBERERGJjIGLiIiISGQMXEREREQiY+AiIiIiEhkDFxEREZHIGLiIiIiIRMbARURERCQyBi4iIiIikTFwEREREYmMgYuIiIhIZAxcRERERCJj4CIiIiISGQMXERERkcgYuIiIiIhExsBFREREJDIGLiIiIiKRMXARERERiYyBi4iIiEhkDFxEREREImPgIiIiIhIZAxcRERGRyBi4iIiIiETGwEVEREQkMgYuIiIiIpExcBERERGJjIGLiIiISGQMXEREREQiY+AiIiIiEhkDFxEREZHIGLiIiIiIRMbARURERCSy/wMX3m9LJUIH3AAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 694x758 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sch = py4hw.Schematic(counter, placeAndRoute=False)\n",
    "\n",
    "sch.placeInputPorts()\n",
    "sch.placeInstances()\n",
    "sch.placeOutputPorts()\n",
    "\n",
    "sch.bruteForceSort()\n",
    "sch.columnAssignment()\n",
    "\n",
    "#sch.createNetsWithMaxFanout(3)\n",
    "sch.createNets()\n",
    "sch.passthroughCreation(debug=False)\n",
    "#sch.removeArrowsSpecialCases()\n",
    "\n",
    "sch.rowAssignment()\n",
    "\n",
    "#for idx, net in enumerate(sch.nets):\n",
    "#    print('net {} - sourcecol: {}'.format(idx, net.sourcecol))\n",
    "    \n",
    "sch.trackAssignment()\n",
    "sch.replaceAsColRow()\n",
    "\n",
    "#self.replaceByAdjacencyMatrix()\n",
    "\n",
    "# self.replaceByDependency()\n",
    "\n",
    "#self.replaceVerticalCompress()\n",
    "# #self.replaceHorizontalCompress()\n",
    "\n",
    "\n",
    "sch.routeNets(mode='square')\n",
    "\n",
    "sch.draw()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "6ac23bdb",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'tracks': 5,\n",
       " 'track': {<py4hw.base.Wire at 0x1c348808850>: {'num': 0,\n",
       "   'nets': [<py4hw.schematic_symbols.NetSymbol at 0x1c34a25fc40>]},\n",
       "  <py4hw.base.Wire at 0x1c3488087c0>: {'num': 1,\n",
       "   'nets': [<py4hw.schematic_symbols.NetSymbol at 0x1c34a25fd30>]},\n",
       "  <py4hw.base.Wire at 0x1c3488097e0>: {'num': 2,\n",
       "   'nets': [<py4hw.schematic_symbols.NetSymbol at 0x1c34880b5e0>]},\n",
       "  <py4hw.base.Wire at 0x1c348808820>: {'num': 3,\n",
       "   'nets': [<py4hw.schematic_symbols.NetSymbol at 0x1c348808f10>]},\n",
       "  <py4hw.base.Wire at 0x1c3487bbee0>: {'num': 4,\n",
       "   'nets': [<py4hw.schematic_symbols.NetSymbol at 0x1c3463b26e0>]}},\n",
       " 'sourcewidth': 30}"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sch.channels[2]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "95c77c5e",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "754d64d3",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.13"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
